*
{
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html
{
    background: radial-gradient(ellipse at center, #430d6d 0%, #000000 100%);
    height: 100%;
}

body
{
    width: 20em;
    height: 20em;
    left: 50%;
    margin-left: -10em;
    margin-top: -10em;
    -webkit-perspective: 1000px;
    -ms-perspective: 1000px;
    perspective: 1000px;
    position: absolute;
    top: 50%;

}

cube
{
    -webkit-animation: 6s spin linear infinite;
    animation: 6s spin linear infinite;
    height: 100%;
    position: absolute;
    -webkit-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    transform-style: preserve-3d;
    width: 100%;
}

cube *
{
    background: -webkit-linear-gradient(270deg, rgba(0, 0, 0, 0) 0px, rgba(54, 226, 248, 0.5) 0%, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px), -webkit-linear-gradient(0deg, rgba(0, 0, 0, 0) 0px, rgba(54, 226, 248, 0.5) 0%, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px);
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0px, rgba(54, 226, 248, 0.5) 0%, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px), linear-gradient(90deg, rgba(0, 0, 0, 0) 0px, rgba(54, 226, 248, 0.5) 0%, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px);
    -webkit-background-size: 2.5em 2.5em, 2.5em 2.5em;
    background-size: 2.5em 2.5em, 2.5em 2.5em;
    background-color: rgba(0, 0, 0, 0.5);
    border: 2px solid rgba(54, 226, 248, 0.5);
    -webkit-box-shadow: 0 0 5em rgba(0, 128, 0, 0.4);
    box-shadow: 0 0 5em rgba(0, 128, 0, 0.4);
    display: block;
    height: 20em;
    position: absolute;
    width: 20em;
}

cube *:before
{
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 30%, rgba(0, 128, 0, 0.2) 100%);
    content: '';
    height: 100%;
    position: absolute;
    width: 100%;
}

back
{
    -webkit-transform: rotateX(180deg) translateZ(10em);
    -ms-transform: rotateX(180deg) translateZ(10em);
    transform: rotateX(180deg) translateZ(10em);
}

bottom
{
    -webkit-transform: rotateX(-90deg) translateZ(10em);
    -ms-transform: rotateX(-90deg) translateZ(10em);
    transform: rotateX(-90deg) translateZ(10em);
}

front
{
    -webkit-transform: rotateY(0deg) translateZ(10em);
    -ms-transform: rotateY(0deg) translateZ(10em);
    transform: rotateY(0deg) translateZ(10em);
}

left
{
    -webkit-transform: rotateY(-90deg) translateZ(10em);
    -ms-transform: rotateY(-90deg) translateZ(10em);
    transform: rotateY(-90deg) translateZ(10em);
}

right
{
    -webkit-transform: rotateY(90deg) translateZ(10em);
    -ms-transform: rotateY(90deg) translateZ(10em);
    transform: rotateY(90deg) translateZ(10em);
}

top
{
    -webkit-transform: rotateX(90deg) translateZ(10em);
    -ms-transform: rotateX(90deg) translateZ(10em);
    transform: rotateX(90deg) translateZ(10em);
}

@-webkit-keyframes spin
{
    from
    {
        -webkit-transform: translateZ(-10em) rotateX(0) rotateY(0deg);
        transform: translateZ(-10em) rotateX(0) rotateY(0deg);
    }

    to
    {
        -webkit-transform: translateZ(-10em) rotateX(360deg) rotateY(360deg);
        transform: translateZ(-10em) rotateX(360deg) rotateY(360deg);
    }
}

@keyframes spin
{
    from
    {
        -webkit-transform: translateZ(-10em) rotateX(0) rotateY(0deg);
        transform: translateZ(-10em) rotateX(0) rotateY(0deg);
    }

    to
    {
        -webkit-transform: translateZ(-10em) rotateX(360deg) rotateY(360deg);
        transform: translateZ(-10em) rotateX(360deg) rotateY(360deg);
    }
}
